エンコード指定できる手動URLエンコーダが欲しかったのですが、軽く検索した範囲で見つからなかったので、ASP.NET 2.0の練習を兼ねて作ってみました。
しかし、ASP.NET 2.0はえらいじゃじゃ馬で、配置の段階でトラブルの山を築いてくれたので、ASP.NET 1.1で作り直しました。トラブルは解決可能と思ったのですが、実際に使う用事があったので、動かす方を優先しました。
機能 §
- 文字列をURLエンコード表記にエンコードします
- URLエンコード表記を元の文字列にデコードします
- その際に使用する文字エンコードの種類は選択可能とします
- UTF-8, Shift_JIS, EUC-JP, ISO-2022-JP, ISO-8859-1はリストから選ぶだけ。その他は、テキストボックスに名前を入れれば使用できます。(IANA chatsetsの名前。.NET Frameworkクラスライブラリが対応する名前は全て使用可能)
どういう時に使うものか? §
日本語ファイル名を含むURLを事前に適切にエンコードしたい場合。
URLエンコードされた文字列の正体が良く分からないときに、文字エンコードを変えながら試行錯誤して内容を調べたい場合。
もっと直接的に言うと…… §
Firefox 1.5のアドレス欄に日本語文字含むURLを入力するとURLエンコードしてくれるのですが、実はたまたまUTF-8のページを見ている時にはUTF-8でURLエンコードされ、たまたまシフトJISのページを見ている時にはShift_JISでURLエンコードされるという現象に出くわしました。当然、UTF-8でエンコードされることを期待しているサーバに対して、シフトJISでエンコードしたURLを投げても「ファイルが見つからない」という結果にしかなりません。
これは手抜きしないで、事前に正しいエンコード(=サーバ側が正しく解釈できる)に手動エンコードしておかないと危険だな……と思ったのが作った理由です。